草庐IT

java - Mockito 在测试方法之外 stub

全部标签

ruby - 你如何在 Rspec 中模拟/ stub 反引号系统调用?

我有一个使用反引号的方法,但stub不适用于它。它正在拉取ls的结果:classTestHelperdefself.test_method`ls`endendrspec测试:describeTestHelperdodescribe'.test_method'dosubject{described_class.test_method}before{Kernel.stub(:`).and_return("test_dir")}it{expect(subject).toeql("test_dir")}endend 最佳答案 TestHel

ruby - 测试散列是否包含特定键以及这些键的值是否不为零

我如何使用RSpec测试方法返回包含特定键的散列并且这些键的值不为nil? 最佳答案 我会写:describeMyObjectdodescribe"#my_method"dosubject(:my_method){MyObject.new.my_method}it{is_expected.tobe_a_kind_of(Hash)}specify{expect(my_method.keys).toinclude(:key1,:key2)}specify{expect(my_method.values).not_toinclude(ni

ruby - 何时在模块的方法中使用 self

我的模块定义如下:moduleRG::Statsdefself.sum(a,args={})a.inject(0){|accum,i|accum+i}endend要使用这个方法,我只需要包含这个定义的文件,这样我就可以:RG::Stats.sum(array)还有RG::Stats.method(:sum)但是,如果我需要使用RG::Stats.instance_methods了解方法列表,我会得到一个空数组。这是因为我使用了self。如果我省略self,则RG::Stats.instance_methods会给出方法列表,但我无法再访问它们。问题是:如何在模块的方法定义中使用self

ruby - 多次别名一个方法

我想为一个原始方法设置两个别名,但我看不到alias_method一次创建多个别名的能力,而是一个接一个。那么有没有可能改变这个:alias_method:aliased_first_method,:first_methodalias_method:aliased_first_method?,:first_method像这样:alias_method[:aliased_first_method,:aliased_first_method?],:first_method我对创建自定义方法不感兴趣。 最佳答案 我认为没有比使用每个更好的

ruby - 如何在 crontab 中测试东西

这一直在我身上发生:1)我写了一个脚本(ruby,外壳等)。2)运行它,它有效。3)把它放在crontab中,让它在几分钟内运行,所以我知道它从那里运行。4)不行,无错误跟踪,返回步骤2或31000次。当我的ruby​​脚本在crontab中失败时,我真的不知道为什么它会失败,因为当我像这样通过管道输出时:rubyscript.rb>&/path/to/output我大概得到了脚本的输出,但我没有从中得到任何错误,也没有得到来自bash的错误(比如没有找到ruby​​或文件不存在)我不知道设置了什么环境变量,也不知道它是否有问题。事实证明,要从crontab运行ruby​​脚本,您必须

ruby - 是否有 Ruby string#blank?方法?

String#blank?非常有用,但存在于Rails中,而不存在于Ruby中。Ruby中是否有类似的东西来替换:str.nil?||str.empty? 最佳答案 据我所知,普通Ruby中没有这样的东西。您可以像这样创建自己的:classNilClassdefblank?trueendendclassStringdefblank?self.strip.empty?endend这将适用于nil.blank?和a_string.blank?您可以将其扩展(就像rails一样)用于true/false和一般对象:classFalseCl

ruby-on-rails - 从整数值获取枚举字符串名称的最佳方法是什么

我需要通过整数值获取枚举状态的字符串名称,接下来我会这样做Order.states.find{|x|x[1]==data['stateId']}有人知道更好的方法吗?enumstate:{created:0,cancelled:100,complete:10,} 最佳答案 Order.states.key(100)=>'cancelled' 关于ruby-on-rails-从整数值获取枚举字符串名称的最佳方法是什么,我们在StackOverflow上找到一个类似的问题:

ruby-on-rails - 你如何从 Rails 中的 View 调用方法?

假设我这样做了:脚本/生成Controller主页并且在家庭Controller中做了一个方法..defsayputs"Youarehere"end如何在index.html.erb中调用该方法?当学习ruby​​时,它只是说在终端中运行whatever.rb运行您在该文件中编写的所有代码。只是好奇如何这将适用于Rails。 最佳答案 我假设您正在运行Rails服务器?有两种可能性,首先你可以在Controller中使用一个辅助方法:helper_method:say在你的Controller中。或者,更好的解决方案是将您的say方

ruby-on-rails - Nils 和方法链

我刚刚进入ruby​​世界,我需要帮助。假设b是nil。我希望以下代码返回nil而不是“NoMethodError:undefinedmethod”a.b.c("d").e我尝试的第一件事是重载NilClass的missing_method以简单地返回一个nil。这是我想要的行为,但我不想如此打扰。如果我能做这样的事情我会很高兴SafeNils.a.b.c("d").e所以这就像一种在本地重载NilClass行为的干净方法。我很想听听一些想法或很好的资源来深入研究这个问题。只要它相当干净,我也对其他方法持开放态度。非常感谢。 最佳答案

不在任何方法中的 Ruby 代码

一般Ruby问题:在Ruby中,我经常看到类内部的代码,而不是方法的一部分。例如:classDooDadattr_accessor:fooend或classTeacher我认为attr_accessor和has_many是分别使用:foo或:students参数调用的方法,是对的吗?如果是这样,这些语句何时执行。我试过这个:classDooDadattr_accessor:fooputs"Ihappened!"@foo=7endnew方法似乎没有运行这些部分:dd=DooDad.newdd.foo输出nil,并且从不吐出任何puts东西这一切究竟是如何运作的?